package cn.jingsheng.backup.util;

import java.util.Date;
import java.util.HashSet;

/**
 * 生成序列ID
 * 
 * @author 李晓丹
 * 
 */
public class GenerateID {
	// 序列后5位值
	private static int seq = 0;
	// 最后生成序列时间
	private static long lastCreateTime;

	/**
	 * 生成唯一序列主键
	 * 
	 * @return
	 */
	public synchronized static Long createId() {
		// 当前时间
		long now = DateTimeUtil.getCurrentDate().getTime();
		// 如果当前时间大于最后生成序列时间
		if (now > lastCreateTime) {
			lastCreateTime = now;
			seq = 0;
		}
		return now * 10000 + ++seq;
	}

	/**
	 * 测试
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		HashSet<Long> set = new HashSet<Long>();
		for (int i = 0; i != 1000000; i++) {
			long id = createId();
			if (set.contains(id)) {
				System.out.println(id);
			} else {
				set.add(id);
			}
		}
		System.out.println(set.size());
		System.out.println(Integer.MAX_VALUE);
		System.out.println(new Date().getTime());
	}
}
